﻿using DexComanda.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace DexComanda
{
    public partial class frmAdicionarGrupo : Form
    {
        Conexao con;
        int rowIndex;
        int codigo;

        public frmAdicionarGrupo()
        {
            InitializeComponent();
            con = new Conexao();
            ExibirGrupos();
        }

        private void Main_Load(object sender, EventArgs e)
        {
           
        }

        private void AdicionarGrupo(object sender, EventArgs e) {

            Grupo grupo = new Grupo() { 
                NomeGrupo = this.txbNomeGrupo.Text
            };

            con.Insert("spAdicionarGrupo", grupo);
            this.txbNomeGrupo.Text = "";
            ExibirGrupos();
        }

        private void EditarGrupo(object sender, EventArgs e)
        {

            codigo = int.Parse(this.gruposGridView.SelectedRows[rowIndex].Cells[0].Value.ToString());
            this.txbNomeGrupo.Text = this.gruposGridView.SelectedRows[rowIndex].Cells[1].Value.ToString();
            
            this.btnAdicionarGrupo.Text = "Salvar";
            this.btnAdicionarGrupo.Click += new System.EventHandler(this.SalvarGrupo);
            this.btnAdicionarGrupo.Click -= new System.EventHandler(this.AdicionarGrupo);

            this.btnEditarGrupo.Text = "Cancelar";
            this.btnEditarGrupo.Click += new System.EventHandler(this.Cancelar);
            this.btnEditarGrupo.Click -= new System.EventHandler(this.EditarGrupo);
           
        }
        
        private void Cancelar(object sender, EventArgs e) {

            Button iButton = (Button)sender;

            if (iButton.Name == "btnEditarGrupo")
            {
                this.txbNomeGrupo.Text = "";
            }
            this.btnAdicionarGrupo.Text = "Adicionar";
            this.btnAdicionarGrupo.Click += new System.EventHandler(this.AdicionarGrupo);
            this.btnAdicionarGrupo.Click -= new System.EventHandler(this.SalvarGrupo);

            this.btnEditarGrupo.Text = "Editar";
            this.btnEditarGrupo.Click += new System.EventHandler(this.EditarGrupo);
            this.btnEditarGrupo.Click -= new System.EventHandler(this.Cancelar);      
        }

        private void SalvarGrupo(object sender, EventArgs e)
        {
            Grupo grupo = new Grupo()
            {
                Codigo = codigo,
                NomeGrupo = this.txbNomeGrupo.Text
            };

            con.Update("spAlterarGrupo", grupo);

            this.btnAdicionarGrupo.Text = "Adicionar";
            this.btnAdicionarGrupo.Click += new System.EventHandler(this.AdicionarGrupo);
            this.btnAdicionarGrupo.Click -= new System.EventHandler(this.SalvarGrupo);

            this.btnEditarGrupo.Text = "Editar";
            this.btnEditarGrupo.Click += new System.EventHandler(this.EditarGrupo);
            this.btnEditarGrupo.Click -= new System.EventHandler(this.Cancelar);

            this.txbNomeGrupo.Text = "";
            ExibirGrupos();
        }

        private void ExibirGrupos() 
        {
            this.gruposGridView.DataSource = null;
            this.gruposGridView.AutoGenerateColumns = true;
            this.gruposGridView.DataSource = con.SelectAll("Grupo", "spObterGrupo");
            this.gruposGridView.DataMember = "Grupo";
           
        }

        private void txbNomeGrupo_TextChanged(object sender, EventArgs e)
        {

        }

        private void gruposGridView_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            int total = this.gruposGridView.SelectedRows.Count;

            for (int i = 0; i < total; i++)
            {
                if (this.gruposGridView.Rows[i].Selected)
                {
                    rowIndex = this.gruposGridView.Rows[i].Index;
                }
            }
        }

    }
}

